╘O INCREMENT A BYTE MEANS ADDING 1 TO ITS VALUE. ┬YTES 160-162, PARTS OF THE JIFFY SOFTWARE CLOCK, JUST LIKE OTHER BYTES, CAN HAVE ONLY A VALUE UP TO 255, SO THAT AFTER INCREMENTING THEM WHEN THEY ARE AT 255 THE RESULT IS ZERO VALUE. ╫HEN BYTE 162 GOES TO ZERO, AFTER 256 JIFFIES (=4.267 SECONDS), BYTE 161 IS INCREMENTED; AND WHEN BYTE 161 GOES TO ZERO, AFTER 18.2044 MINUTES, THEN BYTE 160 IS INCREMENTED.
┴ MORE CIVILIZED TIME DISPLAY OF THE JIFFY SOFTWARE CLOCK IS AVAILABLE BY USING THE 6-FIGURE TI$, WHICH PROVIDES THE TIME IN THE FORM HHMMSS; HERE IS A ┬┴╙╔├ PROGRAM TO DEMONSTRATE THIS. ┴T FIRST IT SETS TO ZERO TI$, WHICH AT THE SAME TIME SETS BYTES 160-162 TO ZERO TOO.
10 TI$="000000"
20 ?P┼(160)P┼(161)P┼(162)TI$:G╧20
╘HE JIFFY SOFTWARE CLOCK IS USING THE INTERRUPT SYSTEM, PROBABLY BETTER CALLED THE PRIORITY SYSTEM. ╔T INTERRUPTS WHATEVER IS BEING DONE 60 TIMES PER SECOND. ╔T NOT ONLY THEN INCREMENTS BYTE 162, BUT ALSO INTERROGATES THE KEYBOARD INCLUDING THE STOP KEY, OPERATES THE CURSOR'S BLINKING, ETC.
╘HE INTERRUPT SYSTEM CAN BE USED BY ADDING IN VERY CAREFULLY ADDITIONAL PRIORITY MACHINE-LANGUAGE PROGRAMS VIA VECTORS 788/9 OR 792/3 AFTER SAVING EVERYTHING FIRST AND DISABLING THE INTERRUPT SYSTEM BEFORE CHANGING ANYTHING. ╘HE ADDITIONAL PROGRAMS MUST, AT THEIR END, RESTORE THE INTERRUPT SYSTEM; ALSO SAVED VALUES OF .┴, .╪, AND .┘ MAY HAVE TO BE PULLED BACK FROM THE STACK, WHICH IS THE AREA RESERVED FOR TEMPORARY PARKING. ╔F SOMETHING IS DONE WRONG, THE COMPUTER MAY HANG UP, AND USUALLY CAN THEN BE RESTORED TO NORMAL ONLY BY SWITCHING IT OFF, LOSING CONTENTS OF MEMORY. ╬OTE THAT ADDING ADDITIONAL PROGRAMS INTO THE INTERRUPT SYSTEM WILL SLOW DOWN THE JIFFY SOFTWARE CLOCK; USE OF THE TAPE RECORDER WILL DO THAT TOO. ╘HE ALARM CLOCKS ARE NOT SLOWED DOWN BY ANYTHING.
╘WO ALARM CLOCKS, READING UP TO 12:59:59.9, AM OR PM, ARE AVAILABLE; IF THE ALARMS ARE USED, THEY COULD, IF DESIRED, TRIGGER THE INTERRUPT SYSTEM IN ADDITION TO ONLY JUST SETTING A BIT (A "FLAG") IN ONE BYTE.
╘HIS ┬┴╙╔├ PROGRAM, WITHOUT USING THE INTERRUPT OPTION, CHANGES THE COLOUR OF THE SCREEN FRAME AT ALARM TIME. ╘HE LINE NUMBERS ARE NOT BELOW 40000 TO ENABLE YOU TO ADD/MERGE ONE OR MORE PROGRAMS WITHOUT LINE NUMBER DUPLICATION; BUT CHECK THAT THERE IS NO DUPLICATION OF VARIABLE NAMES, NOR ANY OTHER DUPLICATION. ─URING TYPING BE SURE TO DISTINGUISH BETWEEN 1 AND L, ALSO BETWEEN ╧ AND 0. ╘O LIST THE PROGRAM ON THE SCREEN TYPE LIST OR L╔
10:REM" ┴DD SOME OTHER PROGRAM(S) HERE?
40000REM" ┴LARM ├LOCK BY ╩OE ╤UITTNER
40010 ?C╚(14)C╚(144)
40099:
40100 REM" ═AIN
40101 IF ZA=0 T╚ GO╙40110
40102 G╧41100
40110:ZA=1:?" ╙ET CLOCK TIME (Y/N)? ";:GO╙40997:?G$
╘HE SECOND ALARM CLOCK USES DIFFERENT MEMORY LOCATIONS [╘HE ALARM ON MINE DOESN'T WORK - A HARDWARE PROBLEM?]:
╔NSTEAD OF 56584-->USE 56328, 56585-->56329, 56586-->56330, 56587-->56331, 56589-->56333, 56591-->56335.
╔NTERVAL TIMERS ARE ALSO AVAILABLE, COUNTING DOWN TO ZERO FROM ANY NUMBER SET BETWEEN 0 TO 65535. ╔T IS POSSIBLE TO COMBINE TWO TIMERS SO AS TO COUNT UP TO ABOUT 70 MINUTES AT 1/15 SECONDS' ACCURACY.